package com.br.sc.vendas.activity;

import java.util.List;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AutoCompleteTextView;
import android.widget.ListView;

import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.br.sc.vendas.adapter.PedidosAdapter;
import com.br.sc.vendas.modelo.Cliente;
import com.br.sc.vendas.modelo.Pedido;
import com.br.sc.vendas.util.AndrettaUtil;

public class ListaPedidosActivity extends SherlockActivity implements OnItemClickListener
{
	AutoCompleteTextView txtNomeCliente;
	ListView listaPedidos;
	PedidosAdapter pedidoAdapter;

	@Override
	protected void onCreate ( Bundle savedInstanceState )
	{
		super.onCreate( savedInstanceState );
		setContentView( R.layout.activity_listapedidos );

		listaPedidos = ( ListView ) findViewById( R.listaPedidos.lvPedidosDoCliente );
		listaPedidos.setOnItemClickListener( this );

		this.txtNomeCliente = ( AutoCompleteTextView ) findViewById( R.listaPedidos.txtNomeCliente );
		this.txtNomeCliente.setOnItemClickListener( this );
		AndrettaUtil.setaAutoCompleteCliente( ListaPedidosActivity.this, txtNomeCliente );
	}

	@Override
	public void onItemClick ( AdapterView< ? > adapter , View view , int posicao , long id )
	{
		if ( view.getId( ) == -1 )
		{
			Pedido pedido = pedidoAdapter.getItem( posicao );

			Intent intent = new Intent( this, CadastroPedidosActivity.class );
			intent.putExtra( "pedido", pedido );

			startActivity( intent );
		}
		else
			listaPedidos.setAdapter( carregaPedidosCliente( ) );
	}

	public boolean onCreateOptionsMenu ( Menu menu )
	{
		menu.add( "Search" ).setIcon( false ? R.drawable.ic_search_inverse : R.drawable.ic_search ).setActionView( R.layout.edittext ).setShowAsAction( MenuItem.SHOW_AS_ACTION_ALWAYS
				| MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW );

		return true;
	}

	private PedidosAdapter carregaPedidosCliente ( )
	{
		final String nome = this.txtNomeCliente.getText( ).toString( );
		final Cliente cliente = new Banco( ).getCliente( this, nome );

		if ( cliente != null )
		{
			final List<Pedido> pedidos = new Banco( ).getPedidosDoCliente( this, cliente );

			if ( pedidos != null )
			{
				pedidoAdapter = new PedidosAdapter( this, pedidos );
				this.listaPedidos.setAdapter( pedidoAdapter );
			}

		}

		return pedidoAdapter;
	}

	@Override
	protected void onPause ( )
	{
		super.onPause( );
		finish( );
	}
}
